﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using Os.Domain;

namespace Os.WebUI.Helpers
{
    public static class StatusHelper
    {
        /// <summary>
        /// Obtém o Label da próxima fase a ser executado
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        public static string ObterLabelProximoStatus(this HtmlHelper helper,StatusOrdemServico status)
        {

            string label = "(Status Não pode ser Alterado)";
           
            switch (status)
            {
                case StatusOrdemServico.Solicitado:
                    label = "Iniciar Atendimento";
                    break;
                case StatusOrdemServico.EmAtendimento:
                    label = "Iniciar Análise";
                    break;
                case StatusOrdemServico.EmAnalise:
                    label = "Enviar para Aprovação";
                    break;
                case StatusOrdemServico.Resolvido:
                    label = "Aguardando Aprovação do Cliente";
                    break;
                case StatusOrdemServico.Fechado:
                    label = "Ordem de serviço finalizada";
                    break;
                default:
                    break;
            }

            return label;
        }

        /// <summary>
        /// Converte o enumerador para o Label para mostrar informações na tela
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        public static string FormatarStatusOs(this HtmlHelper helper, StatusOrdemServico status)
        {
            string result = string.Empty;
            switch (status)
            {
                case StatusOrdemServico.Solicitado:
                    {
                        result = "Solicitado";
                        break;
                    }
                case StatusOrdemServico.EmAtendimento:
                    {
                        result = "Em Atendimento";
                        break;
                    }
                case StatusOrdemServico.EmAnalise:
                    {
                        result = "Em Análise";
                        break;
                    }
                case StatusOrdemServico.Resolvido:
                    {
                        result = "Resolvido";
                        break;
                    }
                case StatusOrdemServico.Fechado:
                    {
                        result = "Fechado";
                        break;
                    }
                default:
                    {
                        result = "";
                        break;
                    }
            }
            return result;
        }

        public static string ObterAcao(this HtmlHelper helper,OrdemServico os)
        {
            string acao = string.Empty;
            Tempo tempo = os.ObterUltimaAtualizacao();
            
            if(tempo != null)
            {
                 acao = tempo.EstadoTempo == Os.Domain.estadoTempo.play ? "Iniciar Contagem" : "Parar Contagem ";
            }
            else
            {
                acao = "Iniciar Contagem";
            }
            return acao;
        }
    }
}